IDtrace - A Tracing Tool for i486 Simulation
نویسندگان
چکیده
This paper describes IDtrace, a binary instrumentation tool which produces execution traces for the ix86 instruction set architecture. Long execution traces can be generated quickly and easily for input to a wide variety of performance evaluation tools. Issues involved in the construction of such a tool are listed along with illustrations of the uses of different generated traces. One example observes the behavior of a branch prediction technique and another compares the cache behavior of the i486 with that of the MIPS R3000. Trace driven simulation plays an important role in the design and tuning of computer architectures. Thus tools which can produce long traces quickly and easily are valued by system designers. This paper discusses IDtrace[1], a software tracing tool for the i486 which produces input data for a wide variety of performance evaluation tools including code profilers and branch prediction and cache simulators. IDtrace instruments program code so that traces are generated during the program's execution. Thus long traces can be produced quickly and easily without additional hardware. Software tracing tools can instrument programs at the source, object, or executable level. Modifying the executable, called late code modification, requires text disassembly, code modification and reloca-tion, and binary file reconstruction. While this approach is the most difficult, instrumentation does not require the source files, the library code is automatically instru-mented, and the tool is almost trivial to use. IDtrace uses late code modification to instrument Unix SysV R4 ELF statically-linked binaries created by Intel/ AT&T and USL CCS C compilers. No sources or symbol tables are needed. Applications can be instrumented to output profile, memory reference, or full execution traces. The resulting binary is about twelve times larger than the original and execution time for the instrumented program ranges from two times that of the original for a profile trace to about twelve times for a full execution trace. IDtrace inserts binary code before each basic block and data memory referencing instruction and relocates all control instructions to account for text expansion, Some inherent architectural attributes of the i486 and compiler actions combine to make binary instrumentation difficult. The i486's complex instruction set contributes to a large, slow instrumented binary. The i486 has 182 memory referenc-ing instructions and many reference memory multiple times with different addresses. In addition, the rep prefix allows an indeterminate number of references per instruction. Furthermore, indirection causes relocation problems. Compiler code structure must be …
منابع مشابه
The Inaccuracy of Trace-Driven Simulation Using Incomplete Multiprogramming Trace Data
Trace-driven simulation is commonly used to predict the performance of computer systems. However, existing tracing techniques produce traces inadequate for some studies: they do not usually record operating system references, and they produce relatively short traces. This paper explores the impact of these trace distortions on the performance estimates of unipro-cessor memory hierarchies using ...
متن کاملThe Inaccuracy of Trace-Driven Simulation Using Incomplete Mulitprogramming Trace Data
Trace-driven simulation is commonly used to predict the performance of computer systems. However, existing tracing techniques produce traces inadequate for some studies: they do not usually record operating system references, and they produce relatively short traces. This paper explores the impact of these trace distortions on the performance estimates of uniprocessor memory hierarchies using m...
متن کاملSalto: SYSTEM FOR ASSEMBLY-LANGUAGE TRANSFORMATION AND OPTIMIZATION
On critical applications, particularly embedded systems, the performance tuning requires multiple passes. Salto (System for Assembly Language Transformation and Optimization) is a retargetable framework for developing all the spectrum of tools that are needed for performance tuning on low-level codes (assembly-languages) on uniprocessors. Salto enables the building of pro ling, tracing and opti...
متن کاملSelf-Consistent hot spot tracing particles by kinetic simulations: With the emphasis on Cusp particle entry
One of the most important advantages of particle simulation as compared to fluid simulation is the capacity for working with and tracing particles. In particle simulations, the test particle method is usually used to get some idea of the behavior of plasma or other substances. In this method, first, a small number of particles are injected into the frame of static electromagnetic fields. Then, ...
متن کاملSpectral Optics Simulation for Rapid Image Systems Prototyping: Ray-tracing, Diffraction and Chromatic Aberration
We describe a software tool that models multicomponent spherical lenses, and calculates the spectral irradiance and depth maps for three-dimensional scenes. Combined with image systems simulations, this tool allows for the rapidly prototyping of imaging systems.
متن کامل